import { defineConfig } from 'vite'
import postCssPxToRem from 'postcss-pxtorem'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
export default (mode, command) => {
  console.log('🚀 ~ command:', command)
  console.log('🚀 ~ mode:', mode)
  return defineConfig({
    plugins: [vue()],
    resolve: {
      alias: {
        '@': resolve(__dirname, 'src'),
      },
    },
    build: {
      minify: 'esbuild', //boolean | 'terser' | 'esbuild'
      sourcemap: true, //boolean | 'inline' | 'hidden' 默认： false;构建后是否生成 source map 文件
      //库编译模式配置
      lib: {
        entry: resolve(__dirname, 'src/index.js'), //指定组件编译入口文件,是必须的因为库不能使用 HTML 作为入口
        name: 'l-vue3-video', // 则是暴露的全局变量，在 formats 包含 'umd' 或 'iife' 时是必须的
        fileName: (format) => `l-vue3-video.${format}.js`, //是输出的包文件名
      },
      // rollup打包配置
      rollupOptions: {
        // 确保外部化处理那些你不想打包进库的依赖
        external: ['vue'],
        output: {
          // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
          globals: {
            vue: 'Vue',
          },
        },
      },
    },
    css: {
      postcss: {
        plugins: [
          postCssPxToRem({
            // 自适应，px>rem转换
            rootValue: 190,
            propList: ['*'], // 需要转换的属性，选择全部都进行转换
            selectorBlackList: ['norem'], // 过滤掉norem-开头的class，不进行rem转换
          }),
        ],
      },
    },
    // // vite 相关配置
    // base: './',
    // server: {
    //   port: 80,
    //   host: true,
    //   open: true,
    //   proxy: {
    //     // https://cn.vitejs.dev/config/#server-proxy
    //     '/test': {
    //       // 测试环境
    //       target: 'rtsp://10.57.32.168:8554/live/test',
    //        // 赵
    //       // target: 'http://10.35.7.238:28010/',
    //       // ws: true,
    //       changeOrigin: true,
    //       // rewrite: p => p.replace(/^\/api/, ''),
    //     },
    //     // '/api/onlinemonitor': {
    //     //   target: 'http://47.108.63.174:28010/',
    //     //   changeOrigin: true,
    //     //   rewrite: (p) => p.replace(/^\/api\/onlinemonitor/, ''),
    //     // },
    //   },
    // },
  })
}
